In network web development, a mashup is a Web application that combines data from one or more sources into a single integrated tool. The term Mashup implies easy, fast integration, frequently done by access to open application programming interfaces or APIs and data sources to produce results that were not the original reason for producing the raw source data. An example of a mashup is the use of cartographic data from a mapping program to add location information to real estate or restaurant data, thereby creating a new and distinct Web service that was not originally provided by either source.
Mashups are increasingly being used as an enabling technology or richer portals for building enterprise applications. The basic components of the mashup are widgets and wirings. A widget consists of an embeddable piece of web user interface (UI) function that can communicate with other widgets through “events”. A wire is a communication link between two or more widgets. A mashup consists of a definition of widget layout, widget configurations, and wirings. One key tenet of the mashup environment is that the user is empowered to completely customize the UI, including contents, configurations, and wirings. This creates a challenge within environments where the designer of a set of widgets and predetermined page content wishes to enable scenarios that cross between multiple page boundaries. However, the designer cannot link directly between two pages in predetermined content without violating the mashup principle: that page may no longer exist in the user's display environment or may have been completely customized from its original contents. Mashups are very loosely coupled components. The components may come from the same provider (in which case, that provider envisioned how they might work together) or may come from different providers. Since the user creates the content and assembles their own user interface (UI), navigation between widgets cannot be assumed since it is not known how the user will structure the application.
Also, the user may have added their own custom pages and would like those pages to participate in the cross-page interactions. Finally, because these widgets are assembled in a loosely coupled fashion, a user interface paradigm is needed to indicate what information may have possible interactions with other pages.
Thus, there is a need to provide a data input system which is effective to enable computerized device users to quickly customize pages in a mashup application.